#!/bin/bash

mark() {
	sed -n -e 's/\([^ ]\)  *\([^ ]\)/\1 \2/
	s/^ *$//
	s/^ *\([^ ]\)/\1/
	s/\([^ ]\) *$/\1/
	p' |sed -n -e '1,1 {
:cycle
H
s/^[^\n].*$//
t next
b leave
:next
N
s/\n//
t m
:m
b cycle
:leave
s/^.*\n/^\n/
H
x
s|^\n|<!DOCTYPE html>\n<html>\n<head>\n    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\n    <title>|
s|\([^\n]\)\n*$|\1</title>\n</head>\n<body>|
p
d
}

${
/^ *==* *$/ {
	x
	s/[^\n]/&/
	s/^/<h1>/
	s/<h1>\n*/<h1>/
	s|$|</h1>\n</body>\n</html>|
	p
	d
	}
H
x
s|\*\([^\* ]*\)\*|<em>\1</em>|g
s|^[ \n]*||
s|[ \n]*$||
/[^ \n]/{
	s/^/<p>/
	s|$|</p>\n|
    }
s|$|</body>\n</html>|
p
d
}

/^ *==* *$/! H
/^ *==* *$/{
H
s|^.*$||
x
/[^\n]/{
	s/^/<h1>/
	s/<h1>\n*/<h1>/
	s|\n* *==* *$|</h1>|
	p
	d
    }
} 

/^$/{
H
x
s|\*\([^\* ]*\)\*|<em>\1</em>|g
s|^[ \n]*||
s|[ \n]*$||
/[^\n]/{
	s|^|<p>|
	s|$|</p>|
	p
	d
    }
} 
'
}

fin="/dev/stdin"
fout="/dev/stdout"
while getopts ":i:o:" a 
do 
	case "$a" in
		i)
			fin="$OPTARG"
			;;
		o)
			fout="$OPTARG"
			;;
	esac
done
if [[ $fin == '-' ]] ; then
	fin='/dev/stdin'	
fi
if [[ $fout == '-' ]]; then
	fout='/dev/stdout'

fi
cat "$fin" | mark > "$fout"



